package com.molichuxing.services.infrastructure.service;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.service.RootService;
import com.molichuxing.services.infrastructure.dto.request.modify.DrivingLicenseModifyDto;
import com.molichuxing.services.infrastructure.dto.response.DrivingLicenseDto;

import java.util.Map;

/**
 * 
 * @author liyg
 * 驾驶证服务
 * 2019-08-12
 * 
 */
public interface DrivingLicenseService extends RootService{

	/**
	 * 获取用户驾驶证信息
	 * 
	 * @param userId
	 *            用户id
	 * @return
	 */
	DrivingLicenseDto getDrivingLicense(Integer userId);
	
	/**
	 * 获取驾驶证列表
	 * 
	 * @param map
	 *            参数
	 * key:id  Integer 用户id 非必填
	 * key:name String 驾驶证姓名 非必填
	 * key:status  Integer 验证状态 非必填
	 * key:pageNum  Integer 当前页
	 * key:pageSize Integer 每页显示条数
	 * @return
	 */
	Paged<DrivingLicenseDto> getDrivingLicenseList(Map<String, Object> map);
	
	/**
	 * 获取驾驶证总条数
	 * @param status 
	 * @return
	 */
	Long getDrivingLicenseCountBystatus(Integer status);
	
	/**
	 * 获取驾驶证总条数
	 * 
	 * @param verifyStatus
	 * @return
	 */
	Long getDrivingLicenseCountByVerifyStatus(Integer verifyStatus);

	/**
	 * 修改驾驶证审核状态
	 * 
	 * @param modifyDto
	 * @return
	 */
	Boolean modifyVerifyStatus(DrivingLicenseModifyDto modifyDto);
	
	/**
	 * 修改驾驶证
	 * 
	 * @param modifyDto
	 * @return
	 */
	Boolean modify(DrivingLicenseModifyDto modifyDto);

	/**
	 * 修改驾驶证状态
	 * @param modifyDto
	 * @return
	 */
	Boolean modifyStatus(DrivingLicenseModifyDto modifyDto);
}
